package com.cy.teducommunitys.com.cy.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cy.teducommunitys.com.common.vo.JsonResult;
import com.cy.teducommunitys.com.cy.service.IBaseService;

import java.util.HashMap;

public class BaseController<T> {
    private IBaseService svc;
    /**
     *类必须实现一个带参的构造方法
     *可以参考CenterController
     * @param svc  参数是BaseServiceImpl的子类
     */
    public BaseController(IBaseService svc){
        this.svc = svc;
    }

    /**
     * 分页查询
     * @param page
     * @param map
     * @return
     */
    public JsonResult findAllObjects(Page page, HashMap<String,Object> map){
        IPage pageObj = svc.findAllObjects(page, map);
        return new JsonResult(pageObj);
    }

    /**
     * 根据id查询
     * @param id
     * @return
     */
    public JsonResult findObjectById(Integer id){
        T entity = (T)svc.findObjectById(id);
        return new JsonResult(entity);
    }

    /**
     *新增或修改
     * @param entity
     * @param id  id是空，则执行新增操作，否则执行修改
     * @return
     */
    public JsonResult saveObject(T entity,Integer id){
        int rows = svc.saveObject(entity,id);
        return  new JsonResult("保存成功");
    }

    /**
     * 删除
     * @param id
     * @return
     */
    public JsonResult deleteObject(Integer id){
        int rows = svc.deleteObject(id);
        return  new JsonResult("删除成功");
    }
}

